home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / DBio.more / USeqApp.h < prev    next >
Text File  |  1996-07-05  |  20KB  |  672 lines

  1. // USeqApp.p 
  2. // by d.g.gilbert, Oct 1990 
  3.  
  4.  
  5. UNIT USeqApp;
  6.  
  7. INTERFACE
  8.  
  9.  
  10. #ifndef __Types__
  11. #include <Types.h>
  12. #endif
  13.  
  14. #ifndef __Memory__
  15. #include <Memory.h>
  16. #endif
  17.  
  18. #ifndef __QuickDraw__
  19. #include <QuickDraw.h>
  20. #endif
  21.  
  22. #ifndef __ToolUtils__
  23. #include <ToolUtils.h>
  24. #endif
  25.  
  26. #ifndef __OSUtils__
  27. #include <OSUtils.h>
  28. #endif
  29.  
  30. #ifndef __Resources__
  31. #include <Resources.h>
  32. #endif
  33.  
  34. #ifndef __Packages__
  35. #include <Packages.h>
  36. #endif
  37.  
  38. #ifndef __Files__
  39. #include <Files.h>
  40. #endif
  41.  
  42. #ifndef __Printing__
  43. #include <Printing.h>
  44. #endif
  45.  
  46. #ifndef __TextEdit__
  47. #include <TextEdit.h>
  48. #endif
  49.  
  50. #ifndef __SANE__
  51. #include <SANE.h>
  52. #endif
  53.  
  54. #ifndef __Controls__
  55. #include <Controls.h>
  56. #endif
  57.  
  58. #ifndef __Aliases__
  59. #include <Aliases.h>
  60. #endif
  61.  
  62. #ifndef __Editions__
  63. #include <Editions.h>
  64. #endif
  65.  
  66. #ifndef __Events__
  67. #include <Events.h>
  68. #endif
  69.  
  70. #ifndef __Notification__
  71. #include <Notification.h>
  72. #endif
  73.  
  74. #ifndef __AppleEvents__
  75. #include <AppleEvents.h>
  76. #endif
  77.  
  78. #ifndef __Processes__
  79. #include <Processes.h>
  80. #endif
  81.  
  82. #ifndef __Balloons__
  83. #include <Balloons.h>
  84. #endif
  85.  
  86. #ifndef __GestaltEqu__
  87. #include <GestaltEqu.h>
  88. #endif
  89.  
  90. #ifndef __Fonts__
  91. #include <Fonts.h>
  92. #endif
  93.  
  94. #ifndef __Scrap__
  95. #include <Scrap.h>
  96. #endif
  97.  
  98. #ifndef __MacAppTypes__
  99. #include <MacAppTypes.h>
  100. #endif
  101.  
  102. #ifndef __UPascalObject__
  103. #include <UPascalObject.h>
  104. #endif
  105.  
  106. #ifndef __UObject__
  107. #include <UObject.h>
  108. #endif
  109.  
  110. #ifndef __UEventHandler__
  111. #include <UEventHandler.h>
  112. #endif
  113.  
  114. #ifndef __UList__
  115. #include <UList.h>
  116. #endif
  117.  
  118. #ifndef __UAdorners__
  119. #include <UAdorners.h>
  120. #endif
  121.  
  122. #ifndef __UStream__
  123. #include <UStream.h>
  124. #endif
  125.  
  126. #ifndef __UGeometry__
  127. #include <UGeometry.h>
  128. #endif
  129.  
  130. #ifndef __UEvent__
  131. #include <UEvent.h>
  132. #endif
  133.  
  134. #ifndef __UCommand__
  135. #include <UCommand.h>
  136. #endif
  137.  
  138. #ifndef __UCommandHandler__
  139. #include <UCommandHandler.h>
  140. #endif
  141.  
  142. #ifndef __UView__
  143. #include <UView.h>
  144. #endif
  145.  
  146. #ifndef __UBehavior__
  147. #include <UBehavior.h>
  148. #endif
  149.  
  150. #ifndef __UTEView__
  151. #include <UTEView.h>
  152. #endif
  153.  
  154. #ifndef __UTECommands__
  155. #include <UTECommands.h>
  156. #endif
  157.  
  158. #ifndef __UMacAppUtilities__
  159. #include <UMacAppUtilities.h>
  160. #endif
  161.  
  162. #ifndef __UPatch__
  163. #include <UPatch.h>
  164. #endif
  165.  
  166. #ifndef __UFailure__
  167. #include <UFailure.h>
  168. #endif
  169.  
  170. #ifndef __UMacAppGlobals__
  171. #include <UMacAppGlobals.h>
  172. #endif
  173.  
  174. #ifndef __UFile__
  175. #include <UFile.h>
  176. #endif
  177.  
  178. #ifndef __UApplication__
  179. #include <UApplication.h>
  180. #endif
  181.  
  182. #ifndef __UPrintHandler__
  183. #include <UPrintHandler.h>
  184. #endif
  185.  
  186. #ifndef __UPrinting__
  187. #include <UPrinting.h>
  188. #endif
  189.  
  190. #ifndef __UWindow__
  191. #include <UWindow.h>
  192. #endif
  193.  
  194. #ifndef __UMenuMgr__
  195. #include <UMenuMgr.h>
  196. #endif
  197.  
  198. #ifndef __UMemory__
  199. #include <UMemory.h>
  200. #endif
  201.  
  202. #ifndef __UErrorMgr__
  203. #include <UErrorMgr.h>
  204. #endif
  205.  
  206. #ifndef __UControl__
  207. #include <UControl.h>
  208. #endif
  209.  
  210. #ifndef __UDialog__
  211. #include <UDialog.h>
  212. #endif
  213.  
  214. #ifndef __UPopup__
  215. #include <UPopup.h>
  216. #endif
  217.  
  218. #ifndef __UScroller__
  219. #include <UScroller.h>
  220. #endif
  221.  
  222. #ifndef __UDocument__
  223. #include <UDocument.h>
  224. #endif
  225.  
  226. #ifndef __UFileHandler__
  227. #include <UFileHandler.h>
  228. #endif
  229.  
  230. #ifndef __UFileBasedDocument__
  231. #include <UFileBasedDocument.h>
  232. #endif
  233.  
  234. #ifndef __UViewServer__
  235. #include <UViewServer.h>
  236. #endif
  237.  
  238. #ifndef __UGridView__
  239. #include <UGridView.h>
  240. #endif
  241.  
  242. #ifndef __UClipboardMgr__
  243. #include <UClipboardMgr.h>
  244. #endif
  245. USES 
  246.      
  247.     /*$U $$Shell(UStd)UStandard.p */ UStandard, 
  248.     /*$U $$Shell(UStd)UMath.p */ UMath, 
  249.     /*$U $$Shell(UStd)UPlot.p */ UPlot, 
  250.     /*$U $$Shell(UStd)UApp.p */ UApp, 
  251.     /*$U $$Shell(UText)UTextDoc.p */ UTextDoc,
  252.     /*$U $$Shell(UTCP)UTCP.p */ UTCP, 
  253.     /*$U $$Shell(UTCP)USMTP.p */ USMTP, 
  254.     /*$U $$Shell(UTCP)UGopher.p */ UGopher, 
  255.     /*$U $$Shell(UTCP)UPOP.p */ UPOP,
  256.     
  257.     USequence,
  258.     USeqReader,
  259.     USeqDoc,
  260.     UGridStuff,
  261.     USeqMail,
  262.     USeqGopher,
  263.     USeqPrint,
  264.     USeqChild();
  265.  
  266.  
  267. TYPE
  268.             //! remember to unDeadStrip any new objects !
  269.                             
  270.  
  271.     TSeqAppApplication == OBJECT (TPrefApplication)
  272.         
  273.         pascal void TSeqAppApplication::ISeqAppApplication(void)
  274.         pascal void TSeqAppApplication::DoAboutBox(void) // override 
  275.         pascal void TSeqAppApplication::DoAppleCommand( CommandNumber aCommandNumber,
  276.                                                  AppleEvent message, reply) // override 
  277.         pascal void TSeqAppApplication::InstallHelpMenuItems(void) // override 
  278.  
  279.         pascal CommandNumber TSeqAppApplication::KindOfDocument(CommandNumber itsCommandNumber,
  280.                                              TFile itsFile) // override 
  281.         pascal void TSeqAppApplication::GetStandardFileParameters(CommandNumber itsCommandNumber,
  282.                                  ProcPtr        VAR fileFilter; TypeListHandle VAR typeList,
  283.                                  short        VAR dlgID;  Point VAR where, VAR dlgHook, modalFilter: ProcPtr;
  284.                                  Ptr        VAR activeList; ProcPtr VAR activateProc, VAR yourDataPtr: UNIV Ptr); 
  285.                                      // override 
  286.         pascal void TSeqAppApplication::OpenOld(CommandNumber itsOpenCommand, TList aFileList)
  287.                                  // override 
  288.         pascal Boolean TSeqAppApplication::TestForSeqFile(TFile aFile)
  289.         pascal TDocument TSeqAppApplication::DoMakeDocument(CommandNumber itsCommandNumber,
  290.                                         TFile itsFile) // override 
  291.         
  292.         pascal void TSeqAppApplication::DoSetupMenus(void) // override 
  293.         pascal void TSeqAppApplication::DoMenuCommand(aCommandNumber:CommandNumber); // override 
  294.         pascal void TSeqAppApplication::AboutToLoseControl(Boolean convertClipboard) // override 
  295.                 
  296.         pascal void TSeqAppApplication::ShowError(OSErr error,  LongInt message) // override 
  297.         }
  298.  
  299.     TSeqedView == OBJECT; FORWARD;
  300.     TSeqedWindow    == OBJECT (TPrefWindow)
  301.         fSequence        : TSequence; // seq we are editing
  302.         fSeqedView    : TSeqedView; 
  303.         fSeqName        : TEditText;
  304.         fReformBut    : TButton;         //reformat seq
  305.         
  306.         pascal void TSeqedWindow::ISeqedWindow(TSequence aSeq)
  307.         pascal void TSeqedWindow::ReplaceSeq(TSequence aSeq)
  308.         pascal void TSeqedWindow::SetPrefID(void)  // override 
  309.         pascal void TSeqedWindow::ShowReverted(void) // override 
  310.         pascal void TSeqedWindow::UpdateEdits(void) 
  311.         pascal void TSeqedWindow::Close(void) /* override */ 
  312.         pascal void TSeqedWindow::DoEvent(EventNumber eventNumber, 
  313.                                             TEventHandler        source; TEvent event) // override 
  314.         }
  315.  
  316.         
  317.     TSeqIndex == OBJECT; FORWARD;
  318.     TSeqHIndex == OBJECT; FORWARD;
  319.  
  320.     TSeqedView            == OBJECT (TTextView)
  321.         integer        fOldStart, fOldEnd, fOldLen;  //save selStart,End for redraw check
  322.         fOldDest, fOldView    : Rect; //save Dest Rect for SeqIndex redraw check
  323.         integer        fOldKind, fOldCheck;
  324.         fSequence        : TSequence;
  325.         
  326.         fSeqIndex        : TSeqIndex;
  327.         fSeqHIndex    : TSeqHIndex;
  328.         fSeqCheck, fSeqStart, fSeqEnd, fSeqLen, 
  329.         TStaticText        fSeqSel, fSeqTyp;
  330.         fCodePop    :    TPopup; //dna/rna/iupac/amino/all
  331.         fChanged    : Boolean; //flag if any edits in view
  332.         
  333.         pascal void TSeqedView::Initialize(void) // override 
  334.         pascal void TSeqedView::ISeqedView( TSequence aSeq)
  335.         pascal void TSeqedView::Free(void) // override 
  336.         pascal void TSeqedView::FreeData(void)  
  337.         
  338.         //call this when seq indices change
  339.         pascal void TSeqedView::UpdateCtls(boolean forceIndex)  
  340.         
  341.         //! Override some TEView methods to call UpdateCtls 
  342.         pascal void TSeqedView::SynchView(boolean redraw) /* override */  
  343.         pascal void TSeqedView::RecalcText(void) /* override */  
  344.         pascal void TSeqedView::DoMouseCommand(VPoint VAR theMouse, TToolboxEvent event,
  345.                                                Point hysteresis) // override 
  346.  
  347.         pascal void TSeqedView::DoSetupMenus(void) // override 
  348.         pascal void TSeqedView::DoMenuCommand(aCommandNumber:CommandNumber); // override 
  349.         
  350.         //! install wordbreaker
  351.         pascal void TSeqedView::MakeTERecord(void) // override 
  352.         
  353.         //! override this to filter sequence entry as well as updateCtls
  354.         pascal void TSeqedView::DoKeyEvent( TToolboxEvent event) // override 
  355.         
  356.         //keep cursor at arrow when teview is not selected (inactive "edittext")
  357.         pascal void TSeqedView::DoSetCursor(VPoint localPoint, RgnHandle cursorRegion)    // override 
  358.                 
  359.         //use to select this view for editing in DLog environment 
  360.         pascal TSeqedView::HandleMouseDown( VPoint theMouse, TToolboxEvent event, 
  361.                              hysteresis: Point):Boolean; // override 
  362.         }
  363.  
  364.     TSeqIndex            == OBJECT (TControl)
  365.         fTEView    : TTEView; 
  366.         pascal void TSeqIndex::Initialize(void) // override 
  367.         pascal void TSeqIndex::CalcMinFrame(VRect VAR minFrame) // override 
  368.         pascal void TSeqIndex::Draw(VRect area) // override 
  369.         }
  370.         
  371.     TSeqHIndex            == OBJECT (TControl)
  372.         fTEView    : TTEView;
  373.         pascal void TSeqHIndex::Draw(VRect area) // override 
  374.         }
  375.  
  376.  
  377.  
  378.  
  379.     TAlnSequence    == OBJECT (TTextView) 
  380.         fSeq                : TSequence;
  381.  
  382.         pascal void TAlnSequence::IAlnSequence(TSequence aSeq)
  383.         pascal void TAlnSequence::ReplaceSeq(TSequence aSeq)
  384.         pascal void TAlnSequence::Free(void) // override 
  385.  
  386.         pascal void TAlnSequence::DeInstall(void) 
  387.         
  388.         pascal void TAlnSequence::MakeTERecord(void) // override 
  389.         pascal void TAlnSequence::ShowReverted(void) // override */ /*?
  390.         pascal TAlnSequence::HandleMouseDown( VPoint theMouse, TToolboxEvent event, 
  391.                              hysteresis: Point):Boolean; // override 
  392.  
  393.         pascal void TAlnSequence::DoMenuCommand(aCommandNumber:CommandNumber); // override 
  394.         pascal void TAlnSequence::DoMouseCommand(VPoint VAR theMouse, TToolboxEvent event,
  395.                                                Point hysteresis) /* override */                
  396.         pascal void TAlnSequence::DoKeyEvent( TToolboxEvent event) // override 
  397.         pascal TTETypingCommand TAlnSequence::DoMakeTypingCommand(Char ch) // override 
  398.         }
  399.         
  400.     TAlnseqTypingCommand == OBJECT( TTETypingCommand)
  401.         pascal void TAlnseqTypingCommand::DoNormalChar( Char aChar) // override 
  402.         }
  403.  
  404.     TAlnDoc == OBJECT; FORWARD;
  405.     
  406.     TAlnView            == OBJECT (TGridView)
  407.         fAlnDoc            : TAlnDoc; // our owner
  408.         fAlnList        : TSeqList;                 //list of TSequence
  409.         fRowHeight    : integer;
  410.         fEditSeq        : TAlnSequence; // 1 floating TAlnSequence 
  411.         fEditRow        : integer;
  412.         fLocked            : Boolean;        //edits disallowed ?
  413.         
  414.         pascal void TAlnView::IAlnView( TAlnDoc itsDocument, TSeqList aSeqList)
  415.         pascal void TAlnView::FreeData(void)
  416.         pascal void TAlnView::Free(void) // override 
  417.         pascal void TAlnView::Close(void) /* override */ 
  418.  
  419.         pascal void TAlnView::UpdateWidth( TSequence aSeq)
  420.         pascal void TAlnView::UpdateAllWidths(void)
  421.         pascal void TAlnView::UpdateSize(void)
  422.         
  423.         pascal void TAlnView::registerInsertLast( TSequence aSeq)
  424.         pascal void TAlnView::addToAlnList( TSequence aSeq)
  425.         pascal TSequence TAlnView::SeqAt( integer aRow)  
  426.         pascal void TAlnView::MakeConsensus(void)
  427.         pascal charsHandle TAlnView::FindCommonBases( integer minCommonPerCent)
  428.         pascal void TAlnView::HiliteCommonBases(void)
  429.         pascal void TAlnView::DeInstallEditSeq(void)
  430.         pascal void TAlnView::InstallEditSeq(integer row, selStart,selEnd, boolean doLight)
  431.         
  432.         pascal void TAlnView::CalcMinFrame(VRect VAR minFrame) // override 
  433.         pascal void TAlnView::DrawContents(void) // override 
  434.         pascal void TAlnView::DrawRangeOfCells(GridCell startCell, stopCell, VRect aRect) 
  435.                     /* override */  
  436.         pascal void TAlnView::DrawCell(aCell:GridCell; VRect aRect)
  437.                     // override 
  438.                     //test - debugging
  439.         pascal void TAlnView::CellToVRect( GridCell aCell, VAR aRect:VRect); // override 
  440.         pascal void TAlnView::Draw(VRect area) /* override */ 
  441.         pascal TAlnView::VPointToLastCell( aPoint: VPoint):GridCell; // override 
  442.         pascal void TAlnView::UpdateCoordinates(void) // override 
  443.         pascal Boolean TAlnView::Focus(void) // override 
  444.                     
  445.         pascal Boolean TAlnView::ContainsClipType(ResType aType) // override 
  446.         pascal void TAlnView::WriteToDeskScrap(void) // override 
  447.         
  448.         pascal void TAlnView::DoMouseCommand(VPoint VAR theMouse, TToolboxEvent event,
  449.                                                Point hysteresis) // override 
  450.         pascal TAlnView::HandleMouseDown( VPoint theMouse, TToolboxEvent event, 
  451.                              hysteresis: Point):Boolean; // override 
  452.         }
  453.         
  454.         
  455.     TAlnIndex            == OBJECT (TTextListView) //? or Scroller type or Grid type?
  456.         fAlnList    : TSeqList;
  457.         fAlnView    : TAlnView;
  458.         
  459.         pascal void TAlnIndex::GetItemText(integer anItem, str255 var aString) // override 
  460.         pascal void TAlnIndex::ReSelect(RgnHandle indexRegion)
  461.         pascal void TAlnIndex::UpdateSize(void)
  462.  
  463.         pascal TAlnIndex::HandleMouseDown( VPoint theMouse, TToolboxEvent event, 
  464.                              hysteresis: Point):Boolean; // override 
  465.         pascal void TAlnIndex::DoMouseCommand(VPoint VAR theMouse, TToolboxEvent event,
  466.                                                Point hysteresis) // override 
  467.         }
  468.         
  469.     TAlnHIndex            == OBJECT (TTextGridView)
  470.         fAlnView    : TAlnView;
  471.     //- fSeq        : TAlnSequence; 
  472.         pascal void TAlnHIndex::UpdateWidth(void)
  473.         pascal void TAlnHIndex::Draw(VRect area) // override 
  474.         pascal void TAlnHIndex::DrawCell(GridCell aCell, VRect aRect) // override 
  475.         pascal void TAlnHIndex::GetText(aCell:GridCell; Str255 VAR aString) // override 
  476.         pascal TAlnHIndex::HandleMouseDown( VPoint theMouse, TToolboxEvent event, 
  477.                              hysteresis: Point):Boolean; // override 
  478.         }
  479.                     
  480.     TSideScroller == OBJECT; FORWARD;
  481.     TAlnScroller     == OBJECT (TScroller)
  482.     /* TAlnScroller takes care of scrolling both the aln and the rows or columns view,
  483.         as appropriate */
  484.         fRowScroller        :    TSideScroller;         
  485.         fColumnScroller    :    TSideScroller;     
  486.  
  487.         pascal void TAlnScroller::Free(void) // override 
  488.         pascal void TAlnScroller::DoScroll(VPoint delta, Boolean redraw) // override 
  489.         pascal void TAlnScroller::SingleScroll(VPoint delta, Boolean redraw)
  490.         }     
  491.  
  492.     TSideScroller     == OBJECT (TScroller)
  493.         fMainScroller        :    TAlnScroller;         
  494.         pascal void TSideScroller::Free(void) // override 
  495.         pascal void TSideScroller::DoScroll(VPoint delta, Boolean redraw) // override 
  496.         pascal void TSideScroller::SingleScroll(VPoint delta, Boolean redraw)
  497.         }
  498.  
  499.  
  500.     TAlnWindow    == OBJECT (TPrefWindow)
  501.         pascal void TAlnWindow::IAlnWindow(void)
  502.         pascal void TAlnWindow::SetPrefID(void) /* override */ 
  503.         }
  504.  
  505.     TAlnDlog            == OBJECT (TDialogView)
  506.         pascal void TAlnDlog::DoMouseCommand(VPoint VAR theMouse, TToolboxEvent event,
  507.                                                Point hysteresis) // override 
  508.         pascal void TAlnDlog::CalcMinFrame(VRect VAR minFrame) // override 
  509.         }
  510.         
  511.     TAlnDoc    == OBJECT (TSeqListDoc)
  512.         fAlnView        : TAlnView; 
  513.         fAlnIndex        : TAlnIndex;
  514.         fAlnHIndex    : TAlnHIndex;
  515.         fAlnWindow    : TAlnWindow;
  516.         fUseColor        : boolean;
  517.         fLockButton,
  518.         TIcon        fColorButton, fMonoButton;
  519.         
  520.         pascal void TAlnDoc::IAlnDoc( TFile itsFile)
  521.         pascal Integer TAlnDoc::SelectionToFile( Boolean AllatNoSelection,
  522.                                 Str255        aFileName; integer seqFormat)  //return # written 
  523.         pascal void TAlnDoc::ShowReverted(void) // override 
  524.         pascal void TAlnDoc::Close(void) /* override */ 
  525.         pascal void TAlnDoc::DoEvent(EventNumber eventNumber, 
  526.                                             TEventHandler        source; TEvent event) // override 
  527.  
  528.         //overrides of TSeqListDoc
  529.         pascal void TAlnDoc::AddSeqToList(TSequence item)  // override 
  530.         pascal void TAlnDoc::DoMakeViews(Boolean forPrinting) // override 
  531.         pascal void TAlnDoc::DoWrite(TFile aFile, Boolean makingCopy) // override 
  532.  
  533.         pascal void TAlnDoc::GetSelection( boolean equalCount, allAtNoSelection,
  534.                                                                 TSeqList        VAR aSeqList; longint VAR start, nbases)
  535.         pascal void TAlnDoc::FirstSelection( TSequence VAR aSeq, longint VAR start, nbases)        
  536.         pascal void TAlnDoc::OpenSeqedWindow(TSequence aSeq)
  537.         pascal void TAlnDoc::OpenSeqs( boolean editOnly) 
  538.         pascal void TAlnDoc::DoMenuCommand(CommandNumber aCommandNumber) // override 
  539.         pascal void TAlnDoc::DoSetupMenus(void) // override 
  540.         }
  541.     
  542.     TSeqChangeCmd        == OBJECT (TCommand)
  543.         TAlnView        fAlnView;
  544.         TSeqList        fOldSeqs;
  545.         TSeqList        fNewSeqs;
  546.         
  547.         pascal void TSeqChangeCmd::ISeqChangeCmd( itsAlnDoc    : TAlnDoc; 
  548.                                                                     TView        itsView;  TSeqList itsSeqs )
  549.         pascal TSequence TSeqChangeCmd::ChangeToNew( oldSeq:TSequence);
  550.         pascal void TSeqChangeCmd::DoIt(void) // override 
  551.         pascal void TSeqChangeCmd::UndoIt(void) // override 
  552.         pascal void TSeqChangeCmd::RedoIt(void) // override 
  553.         pascal void TSeqChangeCmd::Commit(void) // override 
  554.         pascal void TSeqChangeCmd::Free(void) // override 
  555.         }         
  556.  
  557.     TSeqReverseCmd        == OBJECT (TSeqChangeCmd)
  558.         pascal TSequence TSeqReverseCmd::ChangeToNew( oldSeq:TSequence); // override 
  559.         }
  560.     TSeqComplementCmd        == OBJECT (TSeqChangeCmd)
  561.         pascal TSequence TSeqComplementCmd::ChangeToNew( oldSeq:TSequence); // override 
  562.         }
  563.     TSeqRevComplCmd        == OBJECT (TSeqChangeCmd)
  564.         pascal TSequence TSeqRevComplCmd::ChangeToNew( oldSeq:TSequence); // override 
  565.         }
  566.     TSeqCompressCmd        == OBJECT (TSeqChangeCmd)
  567.         pascal TSequence TSeqCompressCmd::ChangeToNew( oldSeq:TSequence); // override 
  568.         }
  569.     TSeqDna2RnaCmd        == OBJECT (TSeqChangeCmd)
  570.         pascal TSequence TSeqDna2RnaCmd::ChangeToNew( oldSeq:TSequence); // override 
  571.         }
  572.     TSeqRna2DnaCmd        == OBJECT (TSeqChangeCmd)
  573.         pascal TSequence TSeqRna2DnaCmd::ChangeToNew( oldSeq:TSequence); // override 
  574.         }
  575.     TSeqTranslateCmd        == OBJECT (TSeqChangeCmd)
  576.         pascal TSequence TSeqTranslateCmd::ChangeToNew( oldSeq:TSequence); // override 
  577.         }
  578.     TSeqLockIndelsCmd        == OBJECT (TSeqChangeCmd)
  579.         pascal TSequence TSeqLockIndelsCmd::ChangeToNew( oldSeq:TSequence); // override 
  580.         }
  581.     TSeqUnlockIndelsCmd        == OBJECT (TSeqChangeCmd)
  582.         pascal TSequence TSeqUnlockIndelsCmd::ChangeToNew( oldSeq:TSequence); // override 
  583.         }
  584.     
  585.  
  586.         
  587.     TPrefsDialog    == OBJECT (TPrefWindow)
  588.         pascal void TPrefsDialog::IPrefsDialog(void)
  589.         pascal void TPrefsDialog::DoEvent(EventNumber eventNumber, 
  590.                                             TEventHandler        source; TEvent event) /* override */ 
  591.         pascal void TPrefsDialog::SetPrefID(void) /* override */ 
  592.         }
  593.         
  594.         
  595.     TAlnShifter        == OBJECT (TRCshifter)
  596.         TAlnView        fAlnView;
  597.         fName        : SeqName;
  598.         pascal void TAlnShifter::IAlnShifter( TGridView itsView, 
  599.                                     TAlnView        itsAlnView; integer atRC, seqName aName)
  600.         pascal void TAlnShifter::DoShift( integer fromRC, toRC) // override 
  601.         }
  602.         
  603.     TAlnSlider        == OBJECT (TRCshifter)
  604.         TAlnView        fAlnView;
  605.         TSeqList        fNewSeqs;
  606.         TSeqList        fOldSeqs;
  607.         RgnHandle        fOldSelection;
  608.         RgnHandle        fNewSelection;
  609.  
  610.         pascal void TAlnSlider::IAlnSlider( TAlnView itsAlnView, integer atRC)
  611.         pascal void TAlnSlider::Free(void) // override 
  612.         pascal void TAlnSlider::DrawFeedback( VPoint anchorPoint, nextPoint) // override 
  613.         pascal TTracker TAlnSlider::TrackMouse(TrackPhase aTrackPhase, VAR anchorPoint, previousPoint,
  614.                                  VPoint        nextPoint; Boolean mouseDidMove) // override 
  615.         pascal void TAlnSlider::DoIt(void) // override 
  616.         pascal void TAlnSlider::UndoIt(void) // override 
  617.         pascal void TAlnSlider::RedoIt(void) // override 
  618.         pascal void TAlnSlider::Commit(void) // override 
  619.         }
  620.         
  621.  
  622.     TAlnEditCommand    == OBJECT (TCommand)
  623.             // handles the cCopy, cCut, and cClear commands for fAlnIndex selections. 
  624.         fAlnDoc        : TAlnDoc;
  625.         fOldList    : TSeqList;            // save orig List (not seqs) for Undo/Redo...
  626.         fSelection    : RgnHandle;            // seqs selected when command was created 
  627.  
  628.         pascal void TAlnEditCommand::IAlnEditCommand(TAlnDoc itsDocument, short itsCommand)
  629.         pascal void TAlnEditCommand::Free(void) // override 
  630.         pascal void TAlnEditCommand::DoIt(void) // override 
  631.         pascal void TAlnEditCommand::UndoIt(void) // override 
  632.         pascal void TAlnEditCommand::RedoIt(void) // override 
  633.         pascal void TAlnEditCommand::Commit(void) // override 
  634.         pascal void TAlnEditCommand::CopySelection(void)
  635.             // Copy the currently selected seqs into the clipboard 
  636.         pascal void TAlnEditCommand::DeleteSelection(void)
  637.             // Delete the currently selected seq(s) 
  638.         pascal void TAlnEditCommand::RestoreSelection(void)
  639.             // Restore the deleted seqs 
  640.         pascal void TAlnEditCommand::ReSelect(void)
  641.             // Change the selection back to what it was when this command was created 
  642.         }                 
  643.  
  644.     TAlnPasteCommand    == OBJECT (TCommand)
  645.         fClipDocument    : TAlnDoc;
  646.         fAlnDoc                : TAlnDoc;
  647.         fSelection        : RgnHandle;     // seqs selected when command was created 
  648.         fReplacedSeqs    : TSeqList;        // the seqs we pasted over 
  649.         fClipList            : TSeqList;
  650.         fInsRow                : Integer;
  651.         
  652.         pascal void TAlnPasteCommand::IAlnPasteCommand(TAlnDoc itsDocument)
  653.         pascal void TAlnPasteCommand::Free(void) // override 
  654.         pascal void TAlnPasteCommand::DoIt(void) // override 
  655.         pascal void TAlnPasteCommand::UndoIt(void) // override 
  656.         pascal void TAlnPasteCommand::RedoIt(void) // override 
  657.         pascal void TAlnPasteCommand::Commit(void) // override 
  658.         pascal void TAlnPasteCommand::UpdateViews(void)
  659.         }         
  660.         
  661.         
  662. VAR
  663.         gSeqAppApplication    : TSeqAppApplication;
  664.         
  665. IMPLEMENTATION
  666.  
  667.         //$I USeqApp.app.p
  668.         //$I USeqApp.edit1.p
  669.         //$I USeqApp.aln.p
  670.  
  671. }
  672.